typedef volatile uint32_t Duty;

/**
 * @brief PWM生成器
 */
typedef struct PWMGenerater
{
    /**
     * @brief 最大占空比
     */
    Duty maxDuty;
    /**
     * @brief 用于设置 占空比 的地址
     */
    Duty *duty;
} PWMGenerater_t, *pPWMGenerator;

/**
 * @brief 返回PWM生成器的占空比
 * 
 * @param pwm PWM生成器
 * @return Duty 占空比
 */
Duty get_pwm_duty(PWMGenerater_t pwm)
{
    return *pwm.duty;
}

/**
 * @brief 设置指定 PWM 生成器 的 占空比
 * 
 * @param pwm PWM生成器
 * @param duty 占空比
 */
void set_pwm_duty(PWMGenerater_t pwm, Duty duty)
{
    *pwm.duty = duty;
}
